# -*- coding: utf-8 -*-
"""
Created on Sat Aug 19 14:33:30 2023

@author: skunk69
"""

import json

chinese_name = u'Aitken拖延问卷'
english_name = 'Aitken Procrastination Inventory'
abbreviation = 'API'
category = u'行为方式量表'

outline = u"""拖延是指在完成任务或采取行动时故意延迟，这可能对个体的学习、工作和生活产生负面影响。《Aitken拖延问卷》（Aitken Procrastination Inventory, API）是一种心理测量工具，由W. H. Aitken于1982年发布，用于评估个体的拖延倾向。API的目的是帮助了解个体拖延的程度，以便为他们提供适当的支持和干预。"""

instruction = u"""请仔细阅读下面一些关于拖延行为的问题，根据您自身的实际情况做出相应的选择。答案无对错之分，请不要有任何顾虑。"""

with open('API.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines):
    _,value = line.strip().split('）',maxsplit=1)
    items[key+1] = value.strip()

reverse_items = [2,4,7,11,12,14,16,17,18]
scales = []
scales_items = []
factors = []
factors_scales = []
rating = [u'完全不符合',u'基本不符合',u'不能确定',u'基本符合',u'完全符合']
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《Aitken拖延问卷》属于一个单维度的自评量表。"""

reliability = u"""样本为某大学一至四年级的本科生群体。各项目与总分的相关均达到显著性水平（），除项目5外，其余项目与总分相关均高于0.2，平均0.482，各项目的鉴别指数在0.13~0.479，平均0.327。Cronbach α系数为0.802。间隔一周后重测，采用积差相关方法计算重测信度，结果为0.705（P<0.001）。"""
validity = u"""对API得分与自我效能量表得分的相关系数为-0.4（P<0.01），提示自我效能高者倾向于较少的拖延行为。计算了一个用于预测大学生作业拖延的回归方程，表明拖延量表API可以解释学生实际拖延行为的52.9%的方差。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""所有条目得分之和即为总分，反映了个体拖延的程度，高分表示拖延倾向更明显。"""

applications = u"""无常模。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)